/*
 * @Author: 葛文杰
 * @Date: 2021/2/20 11:32
 * @Description: egg controller 枚举数据
 */

'use strict';

const BaseController = require('./base');
const { ENUMERATION_TYPE_ARRAY } = require('../util/common');


class EnumerationManageController extends BaseController {

    /**
     * 获取枚举数据类型数组
     */
    async getEnumerationTypeArray() {
        this.success({ data: ENUMERATION_TYPE_ARRAY });
    }

    /**
     * 根据类型获取枚举数据
     */
    async getEnumerationListByCodes() {
        const { ctx, service } = this;
        const { codes } = ctx.request.body;
        let codeArray = codes.split(',');
        if (codeArray && codeArray.length <= 0) {
            this.error({ data: {}, status: 200, message: '请填写枚举类型' });
            return;
        }
        let enumerationArray = await service.enumerationManage.getEnumerationListByCodes(codeArray);
        this.success({ data: enumerationArray });
    }

    /**
     * 获取枚举数据列表
     */
    async getEnumerationList() {
        const { ctx, service } = this;
        const { enumerationName, enumerationType, pageNo, pageSize } = ctx.request.body;
        let tableData = await service.enumerationManage.getEnumerationList(enumerationName, enumerationType, parseInt(pageNo), parseInt(pageSize));
        this.success({ data: tableData });
    }

    /**
     * 保存枚举数据
     */
    async saveEnumerationInfo() {
        const { ctx, service } = this;
        const { enumerationId, enumerationType, enumerationName, enumerationValue } = ctx.request.body;
        let result = await service.enumerationManage.saveEnumerationInfo(enumerationId, enumerationType, enumerationName, enumerationValue);
        this.success({ data: result });
    }

    /**
     * 修改枚举数据
     */
    async updateEnumerationInfoById() {
        const { ctx, service } = this;
        const { enumerationId, enumerationType, enumerationName, enumerationValue } = ctx.request.body;
        let result = await service.enumerationManage.updateEnumerationInfoById(enumerationId, enumerationType, enumerationName, enumerationValue);
        this.success({ data: result });
    }


    /**
     * 删除枚举
     */
    async deleteEnumerationById() {
        const { ctx, service } = this;
        let { enumerationId } = ctx.request.body;
        let result = await service.enumerationManage.deleteEnumerationById(enumerationId);
        this.success({ data: result });
    }
}

module.exports = EnumerationManageController;
